﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CapaNegocio;
using System.Text;

namespace PresentacionWeb
{
    public partial class uiFacturas : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenar_Combo_cliente();
            }

        }

        private string Cargar_datos()
        {
            Clase_FacturaGeneral dato = new Clase_FacturaGeneral();
            StringBuilder tabla = new StringBuilder();
            tabla.Append("<table id='tbcajero' class='tbbusqueda' rules='all'><thead><tr>");


            tabla.Append("<th>Cantidad</th>");
            tabla.Append("<th>Detalle</th>");
            tabla.Append("<th>  Precio Unitario</th>");

            tabla.Append("<th>sud total IVA</th>");



            tabla.Append("</thead></tr>");
            tabla.Append("<tbody>");

            foreach (var item in dato.met_obtenerCabeceraFactura())
            {
                tabla.Append("<tr>");

                tabla.Append("<td>" + item.Cantidad_Producto + "</td>");
                tabla.Append("<td>" + item.Nombre_Producto + "</td>");
                tabla.Append("<td>" + item.Precio_Producto + "</td>");


                tabla.Append("<td>" + item.IVA + "</td>");




                tabla.Append("</tr>");
            }
            tabla.Append("</tbody>");
            tabla.Append("</table>");

            return tabla.ToString();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {

            cargar_cliente();

        }

        private void cargar_cliente()
        {
            Clase_Cliente _cliente = new Clase_Cliente();
            _cliente = _cliente.Metodo_ObtenerCliente().Where(h => h.Ruc_Cedula_Cliente == txt_cedula.Text).FirstOrDefault();

            if (_cliente != null)
            {
                this.txt_nombre.Text = _cliente.Nombre_Cliente;
                this.txt_cedula.Text = _cliente.Ruc_Cedula_Cliente;
                this.txt_telefono.Text = _cliente.Telefono_Cliente;
                this.txt_direccion.Text = _cliente.Direccion_Cliente;
                txt_id_cliente.Text = _cliente.Id_Cliente.ToString();
            }
            else
            {
                lbl_mensaje.Text = "Cliente no encontrado, Desea Ingresarlo";

            }
        }



        //Metodo para cargar los datos de producto


        private void cargar_Productos()
        {
            Clase_Producto _Producto = new Clase_Producto();
            _Producto = _Producto.Metodo_ObtenerProducto().Where(h => h.Nombre_Producto == txt_descripcion.Text).FirstOrDefault();

            if (_Producto != null)
            {
                this.txt_descripcion.Text = _Producto.Nombre_Producto;

                this.txt_idProducto.Text = _Producto.Id_Producto.ToString();
                this.txt_iva.Text = _Producto.Porcentaje.ToString();
                this.txt_precioUnit.Text = _Producto.Precio_Producto.ToString();
                calculo_unitario();
            }
            else
            {
                lbl_Mens.Text = "Producto no encontrado..";

            }
        }


        private void calculo_unitario()
        {
            Clase_Calculo objeto_calculo = new Clase_Calculo();
            txt_total.Text = (Convert.ToString(objeto_calculo.Metodo_Calculo(Convert.ToDecimal(txt_cantidad.Text), Convert.ToDecimal(txt_precioUnit.Text))));
           
        }



        protected void btn_cargar_Click(object sender, EventArgs e)
        {
            cargar_Productos();
        }

        protected void btn_Agregar_Click(object sender, EventArgs e)
        {

        }

        protected void btn_Quitar_Click(object sender, EventArgs e)
        {

        }

        protected void Button2_Click(object sender, EventArgs e)
        {

            Clase_FacturaGeneral _factura = new Clase_FacturaGeneral();
            Esperando.Text = _factura.insertarDetalle_factura(new Clase_FacturaGeneral { Id_Cabezera_Factura = Convert.ToInt32(txtidcabezerafactura.Text), Id_Producto = Convert.ToInt32(txt_idProducto.Text), Precio_Producto = Convert.ToDecimal(txt_precioUnit.Text), Cantidad_Producto = Convert.ToInt32(txt_cantidad.Text), IVA = Convert.ToDecimal(txt_iva.Text) });
        }

        protected void ListView1_SelectedIndexChanged(object sender, EventArgs e)
        {


        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            Literal1.Text = Cargar_datos();
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }


        void llenar_Combo_cliente()
        {
            Clase_Cajera objeto_cliente = new Clase_Cajera();
            DropDownList1.DataSource = objeto_cliente.Metodo_ObtenerCajera();
            DropDownList1.DataTextField = "nombre_cajera";
            DropDownList1.DataValueField = "id_cajera";
            DropDownList1.DataBind();
        }

        protected void Button4_Click(object sender, EventArgs e)
        {
            Clase_FacturaGeneral objeto = new Clase_FacturaGeneral();
            Esperandoo.Text = objeto.met_IngresoCabeceraFactura(new Clase_FacturaGeneral { Id_Cajera = Convert.ToInt32(DropDownList1.SelectedValue), Id_Cliente = Convert.ToInt32(txt_id_cliente.Text), Fecha = Convert.ToDateTime(txt_fecha.Text), Sucursal = txtsucursal.Text, Serie = txtserie.Text, Numero = Convert.ToInt32(txtnumero.Text) });

        }

        protected void Button5_Click(object sender, EventArgs e)
        {
            cargar_factura();
        }

        private void cargar_factura()
        {
            ClaseEspecificaNumero fac = new ClaseEspecificaNumero();
            fac = fac.Metodo_Obtenernumero().Where(h => h.numero == Convert.ToInt32(txtbusacabecera.Text)).FirstOrDefault();

            if (fac != null)
            {
                txtidcabezerafactura.Text = fac.Idcabecerafactura.ToString();
                fac = new ClaseEspecificaNumero();

            }

        }
    }
}